import initState from './lib/initState'
//定义Vue实例传递参数的结构
interface Option {
    //data是function时必须返回Object,
    data: (() => object) | object
}

class Vue {
    //数据
    public data: Object;
    //配置项
    public $option: Option;
    constructor(option: Option) {
        //vue实列初始化
        this.init(option);
    }
    private init(option: Option) {
        //保存vue实例，以免后续使用和其他this混淆
        const vm = this;
        //将配置项存入this实列上
        vm.$option = option;
        //初始化配置项数据数据
        initState(vm);
    }
}

export default Vue